package cshi.thread.FutureImpl;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicReference;

public class OperationFuture<T> 
	extends AbstractListenableFuture<T,OperationCompletionListener> {
	
	public OperationFuture(String k,CountDownLatch l,long opTimeout,ExecutorService es){
		this(k,l,new AtomicReference<T>(null),opTimeout,es);
	}

	public OperationFuture(String k,CountDownLatch l,AtomicReference<T> ref,long timeout,
			ExecutorService es){
		super(es);
	}

	@Override
	public Future<T> addListener(OperationCompletionListener listener) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Future<T> removeListener(OperationCompletionListener listener) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean cancel(boolean mayInterruptIfRunning) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean isCancelled() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean isDone() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public T get() throws InterruptedException, ExecutionException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
		// TODO Auto-generated method stub
		return null;
	}
	
	
}
